package pl.edu.pk.psb.bc.assembler;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import pl.edu.pk.psb.bc.ds.CenaDs;
import pl.edu.pk.psb.bc.ds.PrzystanekDs;
import pl.edu.pk.psb.bc.dto.CenaDto;

@Component
public class CenaAssembler {

	@Autowired
	PrzystanekAssembler przystanekAssembler;

	public CenaDto konwertuj(CenaDs ds) {
		CenaDto dto = new CenaDto();
		if (ds != null) {
			dto.setId(ds.getId());
			dto.setCena(ds.getCena());
			dto.setPrzystanekKonc(przystanekAssembler.konwertuj(ds
					.getPrzystanekKonc()));
			dto.setPrzystanekPocz(przystanekAssembler.konwertuj(ds
					.getPrzystanekPocz()));
		}
		return dto;
	}

	public CenaDs konwertuj(CenaDto dto, PrzystanekDs przystPoczDs) {
		CenaDs ds = new CenaDs();
		ds.setCena(dto.getCena());
		ds.setPrzystanekPocz(przystPoczDs);
		ds.setPrzystanekKonc(przystanekAssembler.konwertuj(dto
				.getPrzystanekKonc()));
		return ds;
	}

	public Set<CenaDto> konwertujDoDto(Set<CenaDs> ds) {
		Set<CenaDto> dto = new HashSet<CenaDto>();
		for (CenaDs CenaDs : ds) {
			dto.add(konwertuj(CenaDs));
		}
		return dto;
	}

	public Set<CenaDs> konwertujDoDs(Set<CenaDto> dto, PrzystanekDs przystPoczDs) {
		Set<CenaDs> listaDs = new HashSet<CenaDs>();
		for (CenaDto CenaDto : dto) {
			listaDs.add(konwertuj(CenaDto, przystPoczDs));
		}
		return listaDs;
	}

	public List<CenaDto> konwertujDoListyDto(List<CenaDs> ds) {
		List<CenaDto> dto = new ArrayList<CenaDto>();
		for (CenaDs CenaDs : ds) {
			dto.add(konwertuj(CenaDs));
		}
		return dto;
	}
}
